package com.neusoft.liduan.d0917;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
import java.util.Iterator;
import java.util.List;
import java.util.Map;
import java.util.Set;

public class 泛型 {
	/*	泛型：比较广泛的类型，但不清楚是哪一个具体的类型，只有在代码执行的时候才知道
	 * 		当不清楚定义的类，需要使用的数据类型为什么的时候，可以使用泛型
	 * 		继承让我们的代码复用率为50%
	 * 		泛型让我代码的复用率变为90%
	 * 		有两个作用
	 * 			1、提高代码复用率，从返回值方面入手。
	 * 			2、限制类型，比如集合，默认的集合是可以放所有类型的
	 * 				但通过泛型可以限制集合放的数据类型，比如字符串等
	 * 	泛型的定义
	 * 		方法的返回值类型
	 * 		方法的形参类型
	 * 		可以用的字母，E、T、V等都可以
	 * 	注意：泛型不支持基本数据类型
	 */
	
	public static void main(String[] args) {
		Set<Integer> set = new HashSet<Integer>();
		set.add(1);
//		set.add("");
		set.add(10);
		Iterator<Integer> it = set.iterator();
		while(it.hasNext()) {
			it.next();
		}
		Set set1 = new HashSet();
		Iterator it1 = set1.iterator();
		while(it1.hasNext()) {
			it1.next();
		}
		List<String> list = new ArrayList<String>();
		Map<String, Object> map = new HashMap();
//		Set<int> set2 = new HashSet<int>();
		//左右的<>一定要写，右边可以不写
		Dao<String> dao = new Dao();
		dao.t1();
	}

}
